package chemins.pack;

import accueil.pack.Login;
import accueil.pack.Menu;
import chemin.pack.R;
import chemin.pack.R.layout;
import chemins.pack.*;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.util.Log;
import android.view.*;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import communication.AndroidConnection;
import communication.IncomingHandler;
import java.text.DecimalFormat;
import java.util.logging.Level;
import java.util.logging.Logger;


public class TableauFinal extends Activity {
    AndroidConnection conn;
    
    
        
    Double energieDistribueeTotale;
    Double energieProduiteTotale;
    Double energieDistribueeDerniereSession;
    Double energieProduiteDerniereSession;
    
    Double proportionsEnergieDistribuee;
    Double proportionsEnergieProduite;
    
    int distanceParcourueTotale;
    int distanceParcourueDerniereSession;
    
    LinearLayout.LayoutParams jaugeCreditD= new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,0);
    LinearLayout.LayoutParams jaugeCreditG= new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,0);
    
    int creditInitial,credit;
    DecimalFormat df = new DecimalFormat ( ) ;
    String assistanceType;
    
    View view;

    
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exitActivity(view);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

   
    @Override
	 public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
                
                
                
	        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
	                                         WindowManager.LayoutParams.FLAG_FULLSCREEN);
	        requestWindowFeature(Window.FEATURE_NO_TITLE);

/*____________________________________________________________________________________________________________________
 * récupération des données étant (ou pouvant l'être pour version supérieur) utilées pour le remplissage du tableau
 * pour cette version, nous utilisons les valeurs énergétiques depuis le login de l'utilisateur  
 */
                Bundle extras=getIntent().getExtras();
                
                energieDistribueeTotale =extras.getDouble("energieDistribueeTotale");        
                energieProduiteTotale =extras.getDouble("energieProduiteTotale");
                
                
                energieDistribueeDerniereSession = extras.getDouble("energieDistribueeDerniereSession");
                energieProduiteDerniereSession = extras.getDouble("energieProduiteDerniereSession");
                distanceParcourueDerniereSession = extras.getInt("distanceParcourueDerniereSession");
               
                
                distanceParcourueTotale = extras.getInt("distanceParcourueTotale");
                this.distanceParcourueTotale = distanceParcourueTotale;
                
                
                credit=extras.getInt("credit");
                this.credit = credit;
                
                creditInitial=extras.getInt("creditInitial");
                this.creditInitial = creditInitial; 
                
                assistanceType =extras.getString("assistanceType");
                this.assistanceType = assistanceType;
//____________________________________________________________________________________________________________________
                
                df.setMinimumFractionDigits( 0 ) ;
                df.setMaximumFractionDigits( 1 );
                df.setDecimalSeparatorAlwaysShown( false ) ; 
                
                if(energieProduiteTotale+energieDistribueeTotale != 0)
                {
                    proportionsEnergieDistribuee = (energieDistribueeTotale/(energieProduiteTotale+energieDistribueeTotale)*100);
                    proportionsEnergieProduite = (energieProduiteTotale/(energieProduiteTotale+energieDistribueeTotale)*100);
                }
                else
                {
                    proportionsEnergieDistribuee = 50.0;
                    proportionsEnergieProduite = 50.0;
                }

                setContentView(R.layout.tableau_final_interface);
                
                                
                initialisationText();
                
                if(creditInitial == -1)
                {
                    findViewById(R.id.tableauRecapitulatifJaugeBase).setVisibility(View.GONE);                            
                }
                evolutionCredit();


	    }
	 
            public void versMenu(View v)
            {
                Intent intent2 = new Intent(TableauFinal.this, Menu.class);   
                intent2.putExtra("creditInitial",creditInitial);
                intent2.putExtra("credit",credit);
                intent2.putExtra("distanceParcourueTotale",distanceParcourueTotale);
                intent2.putExtra("assistanceType",assistanceType);
                
                startActivity(intent2);
	        finish();
            }

	   
	    public void exitActivity(View v)
	    {
                if(((creditInitial != -1)&&(creditInitial-credit <= 0))&&(creditInitial != credit))
                {
                    Intent intent2 = new Intent(TableauFinal.this, Login.class);        
                    startActivity(intent2);
                    finish();
                }
                else
                {
                    versMenu(v);                    
                }
                

	    }
            
        public void initialisationText()
        {
            Typeface policeAltermove = Typeface.createFromAsset(getAssets(), "eurosti.ttf");
            
            ((TextView) findViewById(R.id.tableauRecapitulatifTitreTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifTitreTextView)).setTextSize(32);
            
            ((TextView) findViewById(R.id.tableauRecapitulatifCeVeloTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifCeVeloTextView)).setTextSize(26);
            
            ((TextView) findViewById(R.id.tableauRecapitulatifVeloClassiqueTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifVeloClassiqueTextView)).setTextSize(26);

            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeTextView)).setTextSize(26);
            
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteTextView)).setTextSize(26);
            
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeVeloClassiqueValueTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeVeloClassiqueValueTextView)).setTextSize(26);
            
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteVeloClassiqueValueTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteVeloClassiqueValueTextView)).setTextSize(26);            
            

            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeCeVeloValueTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeCeVeloValueTextView)).setTextSize(26);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieDistribueeCeVeloValueTextView)).setText(df.format(proportionsEnergieDistribuee)+" %");
            

            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteCeVeloValueTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteCeVeloValueTextView)).setTextSize(26);
            ((TextView) findViewById(R.id.tableauRecapitulatifEnergieProduiteCeVeloValueTextView)).setText(df.format(proportionsEnergieProduite)+" %");
            
            
            ((TextView) findViewById(R.id.tableauRecapitulatifConclusionTextView)).setTypeface(policeAltermove);
            ((TextView) findViewById(R.id.tableauRecapitulatifConclusionTextView)).setTextSize(18);
            ((TextView) findViewById(R.id.tableauRecapitulatifConclusionTextView)).setText("Au total, vous avez économisé " + df.format(proportionsEnergieDistribuee)+"% de l'énergie musculaire nécessaire à votre déplacement");
            


        }
        
        
public void evolutionCredit()
    {

            jaugeCreditD.weight = (credit);
            findViewById(R.id.tableauRecapitulatifCreditJaugeDroite).setLayoutParams(jaugeCreditD);

            jaugeCreditG.weight = (creditInitial - credit);
            findViewById(R.id.tableauRecapitulatifCreditJaugeGauche).setLayoutParams(jaugeCreditG);

            ((TextView) findViewById(R.id.tableauRecapitulatifDistanceRestanteTextView)).setText(Integer.toString(credit)+" m");
    }
            
}